jQuery.extend(jQuery.validator.messages,
{
    required : "不能为空",
    remote : "请修正该字段",
    email : "请输入正确格式的电子邮件",
    url : "请输入合法的网址",
    date : "请输入合法的日期",
    dateISO : "请输入合法的日期 (ISO).",
    number : "请输入合法的数字",
    digits : "只能输入整数",
    creditcard : "请输入合法的信用卡号",
    equalTo : "请再次输入相同的值",
    accept : "请输入拥有合法后缀名的字符串",
    maxlength : jQuery.validator.format("请输入一个长度最多是 {0} 的字符串"),
    minlength : jQuery.validator.format("请输入一个长度最少是 {0} 的字符串"),
    rangelength : jQuery.validator.format("请输入一个长度介于 {0} 和 {1} 之间的字符串"),
    range : jQuery.validator.format("请输入一个介于 {0} 和 {1} 之间的值"),
    max : jQuery.validator.format("请输入一个最大为 {0} 的值"),
    min : jQuery.validator.format("请输入一个最小为 {0} 的值")
});

$(document).ready(function()
{
		/* 设置默认属性 */
		$.validator.setDefaults({
		submitHandler : function(form) {
			form.submit();
		}
		});

	// 在$(document).ready中可以不用方法体
//	   function registerValidate(){
    	   $("#regForm").validate({
		        	focusInvalid : false,// 当验证无效时，焦点跳到第一个无效的表单元素。当为false时，验证无效时，没有焦点响应
		            focusCleanup : true, // 当表单得到焦点时，移除在该表单上的errorClass并隐藏所有错误消息
		            // event: "keyup",
		            event : "blur",
		            // debug : true, // 表单不会提交，只进行检查，调试时十分方便
		            // 公用错误提示class
		            ignore : ".ignore", // 类型为submit和reset的表单总是被忽略的。
		            errorClass : "error", // 定义错误消息的样式
//				    errorClass : "app_form_error",
		            success : "app_good_icon",
		            errorElement : "em",
		            rules :
		            {
		        	    userName :{
		        	       required : true,
		        	       email : true
		        	      // checkLoginNameisExist : true
		        	    },
		        	    password :{
		        	    	required : true,
		        	    	minlength : 6
		        	    },
		        	    repassword :{
		        	    	required : true,
		        	    	minlength : 6,
		        	    	equalTo : "#password"
		        	    }
		            },
		            messages :
		            {
		            	userName :{
		                    required : "邮箱不能为空",
		                    email : "邮箱格式不正确"
		                },
		                password :{
		                    required : "请填写密码",
		                    minlength : "密码不能少于6位"
		                },
		                repassword :{
		                	required : "请再次填写相同密码",
		                    minlength : "密码不能少于6位",
		                    equalTo : "两次输入的密码不一致"
		                }
		            },
		            // 验证通过成功提交回调函数
		            submitHandler : function()
		            {
		            	// 执行请求
		            	register();
		            },
		            // 未通过验证提交表单时回调函数，回调函数有两个参数：第一个为一个事件对象，第二个为验证器（validator） 
		            invalidHandler: function(form, validator) {   
		                var errors = validator.numberOfInvalids();   
		                if (errors) {   
		                  var message = errors == 1   
		                    ? 'You missed 1 field. It has been highlighted'  
		                    : 'You missed ' + errors + ' fields. They have been highlighted';   
		                  $("div.error span").html(message);   
		                  $("div.error").show();   
		                } else {   
		                  $("div.error").hide();   
		                }   
		              }   

		        });
	   //}
});

/**控制输入框的样式begin*/

//输入框获得焦点时，样式设置
$('input').focus(function() {
if ($(this).is(":text") || $(this).is(":password")){
	$(this).addClass('focus');
}
if ($(this).hasClass('have_tooltip')) {
	$(this).parent().parent().removeClass('field_normal').addClass('field_focus');
   }
});

// 输入框失去焦点时，样式设置
$('input').blur(function() {
$(this).removeClass('focus');
if ($(this).hasClass('have_tooltip')) {
	$(this).parent().parent().removeClass('field_focus').addClass('field_normal');
   }
});
/**控制输入框的样式end*/

/** 追加自定义验证方法begin */

//中文字两个字节
function checkByteRangeLengthFunc(value, element,param){
	var length = value.length;
	for (var i = 0; i < value.length; i++) {
		if (value.charCodeAt(i) > 127) {
			length++;
	    }
    }
    return this.optional(element)|| (length >= param[0] && length <= param[1]);
}
$.validator.addMethod("checkIsIdCardNo",checkIsIdCardNoFunc,"请确保输入的值在3-15个字节之间(一个中文字算2个字节)");

// 身份证号码验证
function checkIsIdCardNoFunc(value, element){
	return this.optional(element) || isIdCardNo(value);
}
$.validator.addMethod("checkIsIdCardNo",checkIsIdCardNoFunc,"请正确输入您的身份证号码");

// 字符验证
function checkUserNameFunc(value, element){
	return this.optional(element)|| /^[\u0391-\uFFE5\w]+$/.test(value);
}
$.validator.addMethod("checkUserName",checkUserNameFunc,"用户名只能包括中文字、英文字母、数字和下划线");

// 手机号码验证
function CheckIsMobileFunc(value, element){
	var length = value.length;
	return this.optional(element)|| (length == 11 && /^(((13[0-9]{1})|(15[0-9]{1})|(18[6|8|9]))+\d{8})$/.test(value));
}
$.validator.addMethod("CheckIsMobile",CheckIsMobileFunc,"请正确填写您的手机号码");

// 电话号码验证
function checkIsPhoneFunc(value, element){
	var tel = /^(\d{3,4}-?)?\d{7,9}$/g;
	return this.optional(element) || (tel.test(value));
}
$.validator.addMethod("checkIsPhone",checkIsPhoneFunc,"请正确填写您的电话号码");

// 邮政编码验证
function checkIsZipCodeFunc(value, element){
	var tel = /^[0-9]{6}$/;
	return this.optional(element) || (tel.test(value));
}
$.validator.addMethod("checkIsZipCode",checkIsZipCodeFunc,"请正确填写您的邮政编码");

// '<','>'特殊字符验证
function checkInvalidCharFun(value, element)
{
    for (i = 0; i < value.length; i++)
    {
        var c = value.charAt(i);
        if (c == '<' || c == '>')
        {
            return false;
        }
    }
    return true;
}
$.validator.addMethod("checkInvalidChar",checkInvalidCharFun, "不能包含<,>特殊字符");

// 验证注册账号是否已被注册
function checkLoginNameisExistFunc(value, element)
{
	var bo=false;
	 $.ajax({
		 type:"GET",
		 async:false,  // 同步属性
		 dataType : 'text',
		 url : '/action?UserRegisterAction=&action=queryUserisExist&DS=userlogin&loginName='+value,
//		 data : "loginName="+value,
		 success : function(result){
         var res = result.trim();
       	 if(res=="false"){
       		bo = false;
         }else if(res="true"){
        	 bo = true;               
         }
        }
	 });
	return bo;
}
$.validator.addMethod("checkLoginNameisExist",checkLoginNameisExistFunc, "该邮箱已被注册");

//日期大小比较
function checkBiggerCurrentDateFunc(value, element){
	var curDate = new Date();
    var today =  curDate.getFullYear()+ "/" +(curDate.getMonth() + 1) + "/" + ((curDate.getDate()+1)-1);
    if (value == "" || Date.parse(value.replace(/-/g,"/")) <= Date.parse(today))
    {
       return false;
    }
    return true;
}
$.validator.addMethod("checkBiggerCurrentDate",checkBiggerCurrentDateFunc, "日期不能小于今天");

// 时间大小比较
function checkBiggerTimeFunc(value, element,params){
   var startDate = document.getElementById(params[0]).value;
   var startTime = document.getElementById(params[1]).value;
   var endDate = document.getElementById(params[2]).value;
   if(startTime!=""&&value!=""&&endDate!="")
   {
       // 当同一天时比较小时才有意义
       if(startDate==endDate)
       {
           return compareTime(value,startTime);
       }
   }               
   return true;
}
$.validator.addMethod("checkBiggerTime",checkBiggerTimeFunc, "需大于开始时间");

/**
 * @param d1时间1
 * @param d2时间2
 * @return 时间1大于时间2
 */
function compareTime(d1,d2)
{
    
    var arrTime1 = d1.split(':');
    var arrTime2 = d2.split(':');
    if(arrTime1[0]==arrTime2[0])
    {
        return parseInt(arrTime1[1]) >parseInt(arrTime2[1]);
    }
    return parseInt(arrTime1[0])>parseInt(arrTime2[0]);
}

/** 追加自定义验证方法end */
